package cn.iocoder.yudao.module.bpm.controller.admin.oaleavapply.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import jakarta.validation.constraints.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import cn.iocoder.yudao.module.bpm.dal.dataobject.oaleavapplysub.OaLeavApplySubDO;

@Schema(description = "管理后台 - 申请单新增/修改 Request VO")
@Data
public class OaLeavApplySaveReqVO {

    @Schema(description = "请假表单主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "21271")
    private Long id;

    @Schema(description = "申请人的用户编号", example = "18005")
    private Long userId;

    @Schema(description = "原因", example = "不对")
    private String reason;

    @Schema(description = "流程实例的编号", example = "14456")
    private String processInstanceId;

    @Schema(description = "部门id")
    private Long bm;

    @Schema(description = "申请日期")
    private String sqrq;

    @Schema(description = "总时长")
    private String zsc;

    @Schema(description = "bpmkey")
    private String bpmDefKey;

    @Schema(description = "主表")
    private String mainForm;

    @Schema(description = "子表")
    private String subForm;

    @Schema(description = "图片")
    private String tp;

    @Schema(description = "单据编号")
    private String djbh;

    @Schema(description = "单据日期")
    private LocalDateTime djrq;

    @Schema(description = "申请人")
    private Long sqr;

    @Schema(description = "所属组织")
    private String sszj;

    @Schema(description = "费用承担单位")
    private String cdfydw;

    @Schema(description = "费用承担部门")
    private Integer cdfybm;

    @Schema(description = "开始日期")
    private LocalDateTime ksrq;

    @Schema(description = "结束日期")
    private LocalDateTime jsrq;

    @Schema(description = "出发地")
    private String cfd;

    @Schema(description = "到达地")
    private String ddd;

    @Schema(description = "总金额")
    private String zje;

    @Schema(description = "项目id", example = "16329")
    private Long xmid;

    @Schema(description = "项目经理id", example = "17808")
    private Long xmjlid;

    @Schema(description = "说明")
    private String sm;

    @Schema(description = "系列号")
    private String sn;

    @Schema(description = "审批状态", example = "2")
    private String status;

    @Schema(description = "申请人部门")
    private Long sqrbm;

    @Schema(description = "申请人工号")
    private String sqrgh;

    @Schema(description = "部门id", example = "5299")
    private Integer deptId;

    @Schema(description = "节点审批名称", example = "李四")
    private String nodeStatusName;

    @Schema(description = "请假申请列表")
    private List<OaLeavApplySubDO> oaLeavApplySubs;

}